import baseURL from 'common/baseURL.js'

export default {
  config: {
    baseURL,
    // 处理token的方法
    getToken() {
      let token = uni.getStorageSync('token')
      if (!token) {
        return uni.reLaunch({
          url: '/pages/login/login'
        })
      }
      return token
    },
    // 请求拦截器
    beforeRequest(options = {}) {
      return new Promise((resolve, reject) => {
        options.url = this.baseURL.baseURL + options.url
        options.method = options.method || 'GET'
        // 封装自己的请求头
        // options.header = {
        //   token: this.getToken()
        // }
        resolve(options)
      })
    },
    // 响应拦截器
    handleResponse(data) {
      return new Promise((resolve, reject) => {
        const [err, res] = data
        if (res.data.meta && res.data.meta.status !== 200) {
          let msg = res.data.msg || '请求错误！'
          return reject(msg)
        } else if (err) {
          return reject(err)
        }
        return resolve(res.data.message)
      })
    }
  },
  // 请求方法
  request(options = {}) {
    return this.config
      .beforeRequest(options)
      .then(opt => uni.request(opt))
      .then(res => this.config.handleResponse(res))
  }
}
